The present invention relates to coded modulation techniques and, more particularly, to the use of modulated codes that exhibit diversity.
During the past decade, trellis-coded modulation has proven to be a practical power-efficient and bandwidth-efficient modulation technique for channels with additive white Gaussian noise (AWGN). This technique has now been widely used in commercial telephone-line modems and has resulted in an increase of line rates of those modems to as much as 19.2Kbits/s.
The prior art has further recognized that it is possible to take into account the occurrence of fades in the channel--and thereby provide enhanced coding gain via the use of particular trellis codes exhibiting so-called "built-in diversity." In addition my co-pending U.S. pat. applications, Ser. Nos. 386,185, filed July 28, 1989, now U.S. Pat. No. 5,029,185, and 07/459,880, now U.S. Pat. No. 5,048,057 filed of even date herewith co-inventor A. Saleh and entitled "Wireless Local Area Network," teach that it is possible to also take into account the occurrence of strong interference and that not only trellis codes, but also block codes with built-in diversity can be used in such applications.
In general, a block code is said to have X-fold diversity, where X is an integer greater than unity, if each codeword, which is comprised of an ordered finite sequence of signal points, differs from each other codeword at at least X signal point positions. Advantageously, the larger the value of X, the greater the so-called coding gain, which is measured by the savings in signal power over an uncoded modulation scheme. The X-fold diversity of a trellis code may be similarly defined, the only difference being that, strictly speaking, each "codeword" of a trellis code is made up of an infinite sequence of signal points. For practical purposes, however, the "codeword" length of a trellis code may be taken to be the so-called "decoding depth" of the trellis code, which is finite.
Among the requirements in a particular coded modulation system is the level of diversity (i.e., the value of X) that is deemed necessary in order to achieve a given level of performance. Indeed, it is always possible to generate either a trellis or block code that will provide that performance level. The straightforward approach, more particularly, would be to design a code having the desired level of diversity and which, at the same time, maximizes, to the extent achievable, such other parameters as the data rate.